Gradual Ownership Types
نویسندگان
چکیده
Gradual Ownership Types are a framework allowing programs to be partially annotated with ownership types, while providing the same encapsulation guarantees. The formalism provides a static guarantee of the desired encapsulation property for fully annotated programs, and dynamic guarantees for partially annotated programs via dynamic checks inserted by the compiler. This enables a smooth migration from ownership-unaware to ownership-typed code. The paper provides a formal account of gradual ownership types. The theoretical novelty of this work is in adapting the notion of gradual type system with respect to program heap properties, which, unlike types in functional languages or object calculi, impose restrictions not only on data, but also on the environment the data is being processed in. This leads, in particular, to runtime checks of a heap invariant, involving collections of objects. From the practical side, we evaluate applicability of Gradual Ownership Types for Java 1.4 in the context of the Java Collection Framework and measure the necessary amount annotations for ensuring the invariant. We also report on the performance drawbacks and a detected possible “ownership leak”.
منابع مشابه
Tax Avoidance and Institutional Ownership: Active vs. Passive Ownership
Income tax is one of the most important costs of companies and it is usually considered as a cost that should not be paid. One of the most noticeable and influential factors in tax avoidance is corporate ownership structure. With an emphasis on institutional ownership and its types in this paper, it is attempted to measure the effect of this ownership and its types on corporate tax avoidance. F...
متن کاملEncoding Ownership Types in Java
Ownership types systems organise the heap into a hierarchy which can be used to support encapsulation properties, effects, and invariants. Ownership types have many applications including parallelisation, concurrency, memory management, and security. In this paper, we show that several flavours and extensions of ownership types can be entirely encoded using the standard Java type system. Owners...
متن کاملThe Open Challenge of Typed Expressiveness in Concurrency
Context Communication and types are increasingly relevant in (concurrent) programming. To bear witness of this trend, several languages promoted by industry offer advanced type systems (or type-based analysis tools) and/or support (message-passing) communication. For instance, Facebook’s Flow [1] is a type checker for JavaScript based on gradual typing; Mozilla’s Rust [4] exploits affine, owner...
متن کاملتأثیر ساختار سرمایه و ساختار مالکیت بر بقای شرکتها در بورس اوراق بهادار
This study examines the impact of capital structure and ownership structure on the survival of companies. The ownership structure includes two types of ownership: major structure and institutional ownership. The statistical population consists of 484 companies listed in Tehran Stock Market for the period 2004-2014; eventually, through a systematic elimination method, our samples includes 234 co...
متن کاملVariant Ownership with Existential Types
We propose an ownership types system with existential quantification of owners, similar to the existential quantification of types in models of Java wildcards. This produces a system with variant ownership types. Using explicit existential types for variance is more expressive, less ad hoc, and easier to understand and reason about than previous solutions. Furthermore, we propose using both typ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012